package business;

import java.io.Serializable;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author jordan
 */
public class User implements Serializable
{

    String name;
    String IP;
    String login;

    /**
     * This constructor runs on the Client
     *
     * @param name the name of the user
     */
    public User(String name, String login)
    {
        setName(name);
        setLogin(login);

        try
        {
            this.IP = InetAddress.getLocalHost().getHostAddress();
        }
        catch (UnknownHostException ex)
        {
            Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public User(String name,String login,String ip)
    {
        setName(name);
        setLogin(login);
        setIP(IP);
    }

    public String getLogin()
    {
        return login;
    }

    public void setLogin(String login)
    {
        if (login.length() > 20 && login.length() < 0)
        {
            throw new IllegalArgumentException("Login não pode ter menos de 0 ou mais do que 20 caracteres");
        }
        if (login.matches(".*\\d.*"))
        {
            throw new IllegalArgumentException("Não pode haver numeros no login");
        }
        this.login = login;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        if (name.length() <= 5 && name.length() > 300)
        {
            throw new IllegalArgumentException("nome não pode ter menos de 5 ou mais do que 300 caracteres");
        }

        this.name = name;
    }

    public String getIP()
    {
        return IP;
    }

    public void setIP(String IP)
    {
        this.IP = IP;
    }

}
